
#include "iostream"
#include "vector"
#include "unordered_map"
#include "unordered_set"
#include "algorithm"
#include "string"
#include "list"
#include "string.h"

class OneLoop{
public:
    bool same_word(char a,char b){
        return (a==b||a-32==b||b-32==a);
    }
    void run(std::string&s1,std::string&s2){
        if(s1.size()!=s2.size()){
            printf("1\n");
        }else{
            if(s1==s2){
                printf("2\n");
            }else{
                bool same= true;
                for(int i=0;i<s1.size();i++){
                    if(!same_word(s1[i],s2[i])){
                        same= false;
                        break;
                    }
                }
                if(same){
                    printf("3\n");
                }else{
                    printf("4\n");
                }
            }
        }

//        1：两个字符串长度不等。比如 Beijing 和 Hebei
//        　　2：两个字符串不仅长度相等，而且相应位置上的字符完全一致(区分大小写)，比如 Beijing 和 Beijing
//        　　3：两个字符串长度相等，相应位置上的字符仅在不区分大小写的前提下才能达到完全一致（也就是说，它并不满足情况2）。比如 beijing 和        BEIjing
//        　　4：两个字符串长度相等，但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing
    }
};
class Solution {
public:
    void run() {

        bool first = true;
        int a,b,c,d,e;
        std::string s1,s2;
        while (std::getline(std::cin,s1))
        {
            std::getline(std::cin,s2);
            OneLoop loop;
            loop.run(s1,s2);
        }
    }
};

int main() {
//    bool cur_num= true;
    Solution().run();
    return 0;
}

